package cn.biplam.common.bean.md;

import cn.biplam.common.bean.Bean;
import cn.biplam.common.client.DataFilter;
import cn.biplam.common.client.OperatorResult;
import cn.biplam.common.wrapper.ErrorMessage;
import cn.biplam.common.wrapper.UserInfo;

/**
 * 模型对象根主题操作类
 * @author WangSong 2009-10-28下午01:01:10
 * @version 1.0
 */
public abstract class ModelThemeRootObj extends Bean{
	
	/**
	 * 插入新主题信息
	 * @param filter  参数过滤器
	 * @return 主题id
	 * @throws ErrorMessage
	 */
	public abstract String insert(DataFilter filter) throws ErrorMessage;

	/**
	 * 插入新主题信息
	 * @param filter  参数过滤器
	 * @return 主题id
	 * @throws ErrorMessage
	 */
	public abstract void update(DataFilter filter) throws ErrorMessage;

	/**
	 * 插入新主题信息
	 * @param filter  参数过滤器
	 * @return 主题id
	 * @throws ErrorMessage
	 */
	public abstract void delete(DataFilter filter) throws ErrorMessage;

	/**
	 * 移动指针到下一个
	 * @throws ErrorMessage 
	 */
	public abstract boolean next() throws ErrorMessage;

	/**
	 * 主题名称
	 * @return
	 * @throws ErrorMessage
	 */
	public abstract String getName() throws ErrorMessage;

	/**
	 * 主题id
	 * @return
	 * @throws ErrorMessage
	 */
	public abstract String getID() throws ErrorMessage;

	/**
	 * 主题描述
	 * @return
	 * @throws ErrorMessage
	 */
	public abstract String getDesc() throws ErrorMessage;

	/**
	 * 主题的父亲id
	 * @return
	 * @throws ErrorMessage
	 */
	public abstract String getParentId() throws ErrorMessage;

	/**
	 * 主题类型
	 * @return
	 * @throws ErrorMessage
	 */
	public abstract String getThemeType() throws ErrorMessage;

	/**
	 * 主题排序号
	 * @return
	 * @throws ErrorMessage
	 */
	public abstract String getOrid() throws ErrorMessage;

	/**
	 * 主题数据源信息ID
	 * @return
	 * @throws ErrorMessage
	 */
	public abstract String getDsid() throws ErrorMessage;

	/**
	 * 主题数据源名称
	 * @return
	 * @throws ErrorMessage
	 */
	public abstract String getDsName() throws ErrorMessage;

	/**
	 * 取所有结果集
	 * @return
	 */
	public abstract OperatorResult getSelectResult();
	
	/**
	 * 新建实例
	 * @param classParams 类参数
	 * @return 实例
	 * @throws ErrorMessage
	 */
	public static ModelThemeRootObj getNewInstance(UserInfo mUser,String modelType) throws ErrorMessage{
		return (ModelThemeRootObj)get(ModelThemeRootObj.class.getSimpleName(), mUser,modelType);
	}
	
	/**
	 * 新建实例
	 * @param classParams 类参数
	 * @return 实例
	 * @throws ErrorMessage
	 */
	public static ModelThemeRootObj getNewInstance(UserInfo mUser,String modelType,String excludeMid) throws ErrorMessage{
		return (ModelThemeRootObj)get(ModelThemeRootObj.class.getSimpleName(), mUser,modelType,excludeMid);
	}

	public abstract String getTHEME_ID();
	public abstract String getPARENT_THEME_ID() ;
	public abstract String getTHEME_NAME() ;
	public abstract String getTHEME_DESC() ;
	public abstract String getORID() ;
	public abstract String getDSID() ;
	public abstract String getDSNAME() ;
	public abstract String getTHEME_TYPE() ;

}